package com.assignwork.entity.transport;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 货运船舶预报
 *
 * @author ：dujianyu
 * @since ：Created in 2024/4/23 10:03
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("ship_forecast")
@ApiModel(value = "船舶动态预报",description = "")
public class ShipForecast extends TenantEntity  {

    @ApiModelProperty(name = "局调主键",notes = "SVOYAGE_ID")
    private String syncId ;

    @ApiModelProperty(name = "局调同步状态",notes = "索引")
    private String syncStatus ;

    @ApiModelProperty(name = "当前船舶状态",notes = "SHIP_STAT_FLAG")
    private String forecastStatus ;

    @ApiModelProperty(name = "中文船名",notes = "SHIP_NAME")
    private String shipNameZh ;

    @ApiModelProperty(name = "英文船名",notes = "EN_SHIP_NAME")
    private String shipNameEn ;

    @ApiModelProperty(name = "计划泊位",notes = "PLAN_BERTH_CODE")
    private String planBerth ;

    @ApiModelProperty(name = "计划泊位",notes = "PLAN_BERTH_CODE_NAME")
    private String planBerthName ;

    @ApiModelProperty(name = "实际泊位",notes = "LAST_BERTH")
    private String lastBerth ;

    @ApiModelProperty(name = "实际泊位",notes = "LAST_BERTH_NAME")
    private String lastBerthName ;

    @ApiModelProperty(name = "IMO",notes = "IMO")
    private String imo ;

    @ApiModelProperty(name = "内外贸",notes = "TRADE_FLAG")
    private String tradeType ;

    @ApiModelProperty(name = "内外贸",notes = "TRADE_FLAG_NAME")
    private String tradeTypeName ;

    @DateTimeFormat(
            pattern = "yyyy-MM-dd HH:mm"
    )
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm"
    )
    @ApiModelProperty(name = "预抵时间",notes = "ETA")
    private Date eta ;

    @DateTimeFormat(
            pattern = "yyyy-MM-dd HH:mm"
    )
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm"
    )
    @ApiModelProperty(name = "预离时间",notes = "ETD")
    private Date etd ;

    @DateTimeFormat(
            pattern = "yyyy-MM-dd HH:mm"
    )
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm"
    )
    @ApiModelProperty(name = "抵港时间",notes = "rta")
    private Date rta ;

    @DateTimeFormat(
            pattern = "yyyy-MM-dd HH:mm"
    )
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm"
    )
    @ApiModelProperty(name = "靠泊时间",notes = "rtb")
    private Date rtb ;

    @DateTimeFormat(
            pattern = "yyyy-MM-dd HH:mm"
    )
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm"
    )
    @ApiModelProperty(name = "离港时间",notes = "rtd")
    private Date rtd ;

    @DateTimeFormat(
            pattern = "yyyy-MM-dd HH:mm"
    )
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm"
    )
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(name = "单据靠泊时间",notes = "rtd")
    private Date billRtb ;

    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(name = "填发人",notes = "填发人")
    private String issuePerson ;

    @ApiModelProperty(name = "进口航次",notes = "IMP_VOYAGE")
    private String impVoyage ;

    @ApiModelProperty(name = "进口货类",notes = "IMP_CARGO_CODE")
    private String impCargoType ;

    @ApiModelProperty(name = "进口货类",notes = "IMP_CARGO_CODE_NAME")
    private String impCargoTypeName ;

    @ApiModelProperty(name = "进口吨",notes = "IMP_CARGO_WGT")
    private BigDecimal impTon ;

    @ApiModelProperty(name = "进口船代",notes = "IMP_SHIP_AGENT_CODE_NAME")
    private String impAgent ;

    @ApiModelProperty(name = "进口船代",notes = "IMP_SHIP_AGENT_CODE")
    private String impAgentCode ;

    @ApiModelProperty(name = "出口航次",notes = "EXP_VOYAGE")
    private String expVoyage ;

    @ApiModelProperty(name = "出口货类",notes = "EXP_CARGO_CODE")
    private String expCargoType ;

    @ApiModelProperty(name = "出口货类",notes = "EXP_CARGO_CODE_NAME")
    private String expCargoTypeName ;

    @ApiModelProperty(name = "出口吨",notes = "EXP_CARGO_WGT")
    private BigDecimal expTon ;

    @ApiModelProperty(name = "出口船代",notes = "EXP_SHIP_AGENT_CODE_NAME")
    private String expAgent ;

    @ApiModelProperty(name = "出口船代",notes = "EXP_SHIP_AGENT_CODE")
    private String expAgentCode ;

    @ApiModelProperty(name = "船舶ID",notes = "船舶ID")
    private String sdataId ;

    private String expShipNoE;
    private String shipCod;
    private String voyageNo;

    @ApiModelProperty(name = "是否同步数据到华东(-1:永久不同步;0:不同步;1:同步)",notes = "是否同步数据到华东(-1:永久不同步;0:不同步;1:同步)")
    private Integer isSyncToHuadong;

    @ApiModelProperty(name = "航次信息进口显示",notes = "")
    private String voyageImpShow ;

    @ApiModelProperty(name = "航次信息出口显示",notes = "")
    private String voyageExpShow ;

}
